/*
 * Created by LiuYou on 2020/11/13.
 *
 */
#include <iostream>
#include "Computer.hpp"
#include "IntelCpu.hpp"
#include "NvidiaGraphicsCard.hpp"

/// 如果这里不想出现 #include "IntelCpu.hpp" 可以
/// 将 #include "IntelCpu.hpp" 放到 Computer.hpp 头文件的上面。
///#include "IntelCpu.hpp"

using computer::Computer;
using computer::Cpu;
using computer::IntelCpu;
using computer::GraphicsCard;
using computer::NvidiaGraphicsCard;

int main() {
/*    {
        std::cout << "Design and Declaration" << std::endl;
        Cpu cpu("cpu");
        Computer computer(&cpu);
        std::cout << computer.getCpu()->getCpuFeature() << std::endl;

        IntelCpu intelCpu("intel cpu");
        computer.setCpu(&intelCpu);


        std::cout << computer.getCpu()->getCpuFeature() << std::endl;
    }*/

    GraphicsCard graphicsCard;
    std::cout << graphicsCard << std::endl;
    GraphicsCard* ptrGraphicsCard{nullptr};
    NvidiaGraphicsCard nvidiaGraphicsCard;
//    std::cout << nvidiaGraphicsCard << std::endl;
    ptrGraphicsCard = &nvidiaGraphicsCard;
    std::cout << ptrGraphicsCard->theFeatureOfGC() << std::ends;

    return 0;
}
